import request from '@/utils/request'


/**
 * @description 根据token获取当前用户个人信息
 * @author Jim
 * @date 2021-01-31
 * @param data
 */
export function reqUserInfo(data) {
  return request({
    url: '/user/currentUser',
    method: 'post',
    data
  })
}


/**
 * @description 分页条件查询用户列表
 * @author Jim
 * @date 2021-02-01
 */
export function getUsers(params) {
  return request({
    url: '/user/list',
    method: 'get',
    params
  })
}


/**
 * @description 添加一个用户
 * @author Jim
 * @date 2021-01-31
 * @param data
 * @returns
 */
export function addUser(data) {
  return request({
    url: '/user/regist',
    method: 'post',
    data
  })
}

/**
 * @description 修改某个用户信息
 * @author Jim
 * @date 2021-01-31
 * @param data
 */
export function modifyUser(data) {
  return request({
    url: '/user/modify',
    method: 'post',
    data
  })
}

/**
 * @description 个人信息设置（登录者）
 * @author Jim
 * @date 2021-01-31
 * @param data
 */
export function editUser(data) {
  return request({
    url: '/user/personal/set',
    method: 'post',
    data
  })
}

/** 
 * @description 获取某个用户权限
 * @author Jim
 * @date 2021-02-01
 * @param id 用户id
 */
export function getPermissionsByUser(id) {
  return request({
    url: '/permission/get/user-permission',
    method: 'get',
    params: { id }
  })
}


/** 
 * @description 获取某个用户的角色列表
 * @author Jim
 * @date 2021-02-01
 * @param id 用户id
 */
export function getRolesByUser(id) {
  return request({
    url: '/permission/get/roles',
    method: 'get',
    params: { id }
  })
}

/** 
 * @description 获取角色的权限列表（分层级获取）
 * @author Jim
 * @date 2021-02-01
 * @param id 角色id
 */
export function getPermissionsByRole(id) {
  return request({
    url: '/permission/get/role-permission',
    method: 'get',
    params: { id }
  })
}

/** 
 * @description 获取所有权限列表（不分页）
 * @author Jim
 * @date 2021-02-01
 * @param id 权限父级ID（固定传0)
 */
export function getAllPermissions (id = 0) {
  return request({
    url: '/permission/get/permissions',
    method: 'get',
    params: { id }
  })
}


/**
 * @description 添加角色以及角色的权限列表
 * @author Jim
 * @date 2021-02-01
 * @param data
 */
export function addRolePermission(data) {
  return request({
    url: '/permission/add/role-permission',
    method: 'post',
    data
  })
}


/**
 * @description 给某个用户添加角色
 * @author Jim
 * @date 2021-02-01
 * @param data
 */
export function addRoleToUser(data) {
  return request({
    url: '/permission/add/role-user',
    method: 'post',
    data
  })
}

/**
 * @description 给某个用户添加单独的权限
 * @author Jim
 * @date 2021-02-01
 * @param data
 */
export function addPermissionToUser(data) {
  return request({
    url: '/permission/add/permission-user',
    method: 'post',
    data
  })
}



/**
 * @description 删除用户
 * @author Jim
 * @date 2021-02-16
 * @param params
 */
export function deleteUser(params) {
  return request({
    url: '/user/delete',
    method: 'post',
    params
  })
}

/**
 * @description 冻结用户
 * @author Jim
 * @date 2021-02-16
 * @param params
 */
export function freezeUser(params) {
  return request({
    url: '/user/freeze',
    method: 'post',
    params
  })
}

/**
 * @description 修改用户密码
 * @author Jim
 * @date 2021-02-16
 * @param params
 */
export function modifyUserPassword(params) {
  return request({
    url: '/user/modify/password',
    method: 'post',
    params
  })
}


// -------------------------------以下为业务外 mock api---------------------------------------------

/**
 * @description 请求是否已经存在此用户
 * @author Jim
 * @date 2021-01-31
 * @param data
 * @returns
 */
export function reqValidatUserID(data) {
  return request({
    url: '/user/validatUserID',
    method: 'post',
    data
  })
}


